using System;
using System.Collections.Generic;
using System.Text;

using DATA.Base;

namespace DATA.ManagerObjects
{
    public interface IManagerFactory
    {
		// Get Methods
		IChitietdoanhthutheoloaiphongManager GetChitietdoanhthutheoloaiphongManager();
		IChitietdoanhthutheoloaiphongManager GetChitietdoanhthutheoloaiphongManager(INHibernateSession session);
		IChitiethoadonManager GetChitiethoadonManager();
		IChitiethoadonManager GetChitiethoadonManager(INHibernateSession session);
		IChitietmatdosudungphongManager GetChitietmatdosudungphongManager();
		IChitietmatdosudungphongManager GetChitietmatdosudungphongManager(INHibernateSession session);
		IDoanhthutheoloaiphongManager GetDoanhthutheoloaiphongManager();
		IDoanhthutheoloaiphongManager GetDoanhthutheoloaiphongManager(INHibernateSession session);
		IHoadonManager GetHoadonManager();
		IHoadonManager GetHoadonManager(INHibernateSession session);
		IKhachhangManager GetKhachhangManager();
		IKhachhangManager GetKhachhangManager(INHibernateSession session);
		ILoaikhachManager GetLoaikhachManager();
		ILoaikhachManager GetLoaikhachManager(INHibernateSession session);
		ILoaiphongManager GetLoaiphongManager();
		ILoaiphongManager GetLoaiphongManager(INHibernateSession session);
		IMatdosudungphongManager GetMatdosudungphongManager();
		IMatdosudungphongManager GetMatdosudungphongManager(INHibernateSession session);
		IPhieuthuephongManager GetPhieuthuephongManager();
		IPhieuthuephongManager GetPhieuthuephongManager(INHibernateSession session);
		IPhongManager GetPhongManager();
		IPhongManager GetPhongManager(INHibernateSession session);
		IPhuthuManager GetPhuthuManager();
		IPhuthuManager GetPhuthuManager(INHibernateSession session);
		IThamsoManager GetThamsoManager();
		IThamsoManager GetThamsoManager(INHibernateSession session);
    }

    public class ManagerFactory : IManagerFactory
    {
        #region Constructors

        public ManagerFactory()
        {
        }

        #endregion

        #region Get Methods

		public IChitietdoanhthutheoloaiphongManager GetChitietdoanhthutheoloaiphongManager()
        {
            return new ChitietdoanhthutheoloaiphongManager();
        }
		public IChitietdoanhthutheoloaiphongManager GetChitietdoanhthutheoloaiphongManager(INHibernateSession session)
        {
            return new ChitietdoanhthutheoloaiphongManager(session);
        }
		public IChitiethoadonManager GetChitiethoadonManager()
        {
            return new ChitiethoadonManager();
        }
		public IChitiethoadonManager GetChitiethoadonManager(INHibernateSession session)
        {
            return new ChitiethoadonManager(session);
        }
		public IChitietmatdosudungphongManager GetChitietmatdosudungphongManager()
        {
            return new ChitietmatdosudungphongManager();
        }
		public IChitietmatdosudungphongManager GetChitietmatdosudungphongManager(INHibernateSession session)
        {
            return new ChitietmatdosudungphongManager(session);
        }
		public IDoanhthutheoloaiphongManager GetDoanhthutheoloaiphongManager()
        {
            return new DoanhthutheoloaiphongManager();
        }
		public IDoanhthutheoloaiphongManager GetDoanhthutheoloaiphongManager(INHibernateSession session)
        {
            return new DoanhthutheoloaiphongManager(session);
        }
		public IHoadonManager GetHoadonManager()
        {
            return new HoadonManager();
        }
		public IHoadonManager GetHoadonManager(INHibernateSession session)
        {
            return new HoadonManager(session);
        }
		public IKhachhangManager GetKhachhangManager()
        {
            return new KhachhangManager();
        }
		public IKhachhangManager GetKhachhangManager(INHibernateSession session)
        {
            return new KhachhangManager(session);
        }
		public ILoaikhachManager GetLoaikhachManager()
        {
            return new LoaikhachManager();
        }
		public ILoaikhachManager GetLoaikhachManager(INHibernateSession session)
        {
            return new LoaikhachManager(session);
        }
		public ILoaiphongManager GetLoaiphongManager()
        {
            return new LoaiphongManager();
        }
		public ILoaiphongManager GetLoaiphongManager(INHibernateSession session)
        {
            return new LoaiphongManager(session);
        }
		public IMatdosudungphongManager GetMatdosudungphongManager()
        {
            return new MatdosudungphongManager();
        }
		public IMatdosudungphongManager GetMatdosudungphongManager(INHibernateSession session)
        {
            return new MatdosudungphongManager(session);
        }
		public IPhieuthuephongManager GetPhieuthuephongManager()
        {
            return new PhieuthuephongManager();
        }
		public IPhieuthuephongManager GetPhieuthuephongManager(INHibernateSession session)
        {
            return new PhieuthuephongManager(session);
        }
		public IPhongManager GetPhongManager()
        {
            return new PhongManager();
        }
		public IPhongManager GetPhongManager(INHibernateSession session)
        {
            return new PhongManager(session);
        }
		public IPhuthuManager GetPhuthuManager()
        {
            return new PhuthuManager();
        }
		public IPhuthuManager GetPhuthuManager(INHibernateSession session)
        {
            return new PhuthuManager(session);
        }
		public IThamsoManager GetThamsoManager()
        {
            return new ThamsoManager();
        }
		public IThamsoManager GetThamsoManager(INHibernateSession session)
        {
            return new ThamsoManager(session);
        }
        
        #endregion
    }
}
